// v-click-outside 自定义指令
const directive = {
    mounted(el, binding) {
      // 检查传入的值是否是函数
      if (typeof binding.value !== 'function') {
        console.error('v-click-outside 指令需要一个函数作为参数')
        return
      }
  
      // 点击事件处理函数
      const handleOutsideClick = (event) => {
        // 检查点击事件是否在元素内部发生
        if (!el.contains(event.target)) {
          // 调用传入的函数
          binding.value(event)
        }
      }
  
      // 在元素上存储处理函数，以便在 unmounted 钩子中使用
      el._handleOutsideClick = handleOutsideClick
  
      // 添加事件监听器
      document.addEventListener('click', handleOutsideClick)
    },
    unmounted(el) {
      // 移除事件监听器
      document.removeEventListener('click', el._handleOutsideClick)
    },
  }
  
  export default directive
  